idea |
您所在的位置:网站首页 › idea插件开发 ui › idea |
文章目录
前言一、DialogWrapper二、使用 DialogWrapper1. 简单小案例1.1 定义dialog1.2 使用dialog
2. 默认 dialog2.1 com.intellij.openapi.ui.Messages
总结
前言
Dialogs (对话框), 在图形用户界面中,对话框(又称对话方块[1])是一种特殊的视窗, 用来在用户界面中向用户显示信息,或者在需要的时候获得用户的输入响应。之所以称之为“对话框”是因为它们使计算机和用户之间构成了一个对话——或者是通知用户一些信息,或者是请求用户的输入,或者两者皆有。
DialogWrapper是一个基类,应该用于IntelliJ平台中显示的所有模式对话框(以及一些非模式对话框)。 它提供以下功能: 按钮布局(确定/取消按钮的平台特定顺序,macOS特定的帮助按钮)非模式验证(当输入到对话框的数据无效时显示错误消息文本)快捷键支持 (esc (退出), Left/Right(按钮切换), Y/N (如果对话框中存在是/否操作,则为Y/N))可选“不再询问”复选框DialogWrapper类通常与GUI设计器窗体一起使用。在本例中,将GUI设计器窗体绑定到类扩展DialogWrapper,将窗体的顶层面板绑定到一个字段,然后从createCenterPanel()方法返回该字段。 要显示对话框,请调用show()方法,然后使用getExitCode()方法检查对话框是如何关闭的。showAndGet()方法可用于组合这两个调用。 扩展功能 要自定义对话框中显示的按钮(替换标准的“确定”/“取消”/“帮助”按钮),需要重写createActions()或createLeftActions()方法。这两个方法都返回一个Swing动作对象数组。如果某个按钮关闭了对话框,请使用DialogWrapperExitAction作为操作的基类。使用动作.putValue(DialogWrapper.DEFAULT_ACTION,true)设置默认按钮。要验证输入到对话框中的数据,请重写doValidate()方法。计时器将自动调用该方法。如果当前输入的数据有效,则返回null。否则,返回封装错误消息的ValidationInfo对象和与无效数据关联的可选组件。当指定一个组件时,一个错误图标将显示在它旁边,当用户试图调用OK操作时,它将被聚焦。 二、使用 DialogWrapper 1. 简单小案例代码如下(示例): 1.1 定义dialog public class SampleDialogWrapper extends DialogWrapper { public SampleDialogWrapper() { super(true); // use current window as parent init(); setTitle("Test DialogWrapper"); } /** * 自定义提示组件 * * @return JComponent */ @Nullable @Override protected JComponent createCenterPanel() { JPanel dialogPanel = new JPanel(new BorderLayout()); JLabel label = new JLabel("testing"); label.setPreferredSize(new Dimension(100, 100)); dialogPanel.add(label, BorderLayout.CENTER); return dialogPanel; } } 1.2 使用dialog if (new SampleDialogWrapper().showAndGet()) { // user pressed OK } 2. 默认 dialog也可以使用idea默认的dialog,简单方便,主要是不用自己写!只要不是自己写的就怎么都是香的 ~ . ~ 2.1 com.intellij.openapi.ui.Messages这是 JetBrains 提供的工具类,官方介绍如下 Provides several default notification dialogs (“OK|Cancel”) as well as simple input dialogs.(提供几个默认的通知对话框(“确定|取消”)以及简单的输入对话框。) 下面是这个类一些简单的方法 — 看看方法名就大概知道啥功能 代码如下(示例): 类似文本域输入框 // 方法参数如下 public static @NlsSafe String showMultilineInputDialog(Project project, @DialogMessage String message, @DialogTitle String title, @Nullable @NonNls String initialValue, @Nullable Icon icon, @Nullable InputValidator validator) // 调用方法如下 // userInput String strMysqlColumns = Messages.showMultilineInputDialog(project, "Enter the column you need to add salt", "xyang", "example:\n" + "\t user_id,\n " + "\t user_name", Messages.getInformationIcon(), null);实际效果 可能有小伙伴可能会疑惑,Project 这个参数…不明白的建议看看我前俩篇文章 idea 自定义插件 工具面板IDEA-插件开发 入门篇单行输入框 // 方法如下 public static @NlsSafe String showInputDialog(@Nullable Project project, @DialogMessage String message, @DialogTitle String title, @Nullable Icon icon) // 调用逻辑如下 String prefix = Messages.showInputDialog(project, "Enter the prefix you need to add", "xyang", Messages.getInformationIcon()); 实际效果如下 还有很多各种各样的 dialogs,这里就不一一演示了,很多方法看方法名都大概能知道意思 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |